Safe, Efficient Garbage Collection for C++

نویسندگان

  • John R. Ellis
  • David Detlefs
چکیده

We propose adding safe, efficient garbage collection to C++, eliminating the possibility of storage-management bugs and making the design of complex, object-oriented systems much easier. This can be accomplished with almost no change to the language itself and only small changes to existing implementations, while retaining compatibility with existing class libraries. Our proposal is the first to take a holistic, system-level approach, integrating four technologies. The language interface specifies how programmers access garbage collection through the language. An optional safe subset of the language automatically enforces the safe-use rules of garbage collection and precludes storage bugs. A variety of collection algorithms are compatible with the language interface, but some are easier to implement and more compatible with existing C++ and C implementations. Finally, codegenerator safety ensures that compilers generate correct code for use with collectors. John R. Ellis and David L. Detlefs

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Mosaic: A Non-Intrusive Complete Garbage Collector for DSM System

Little work has been done in garbage collection algorithms for distributed shared memory systems. Mosaic is a safe and complete garbage collection system that collects garbage in object systems that are implemented above page-based distributed shared memory systems. It is non-intrusive in its impact on application performance. Mosaic partitions the virtual address space into separately managed ...

متن کامل

An Effect System Combining Alias and Liveness for Explicit Memory Reuse

The garbage collection is a safe and efficient method for managing the heap. However it is not efficient for temporary storages that are allocated often and deallocated quickly. Reusing temporary storages without collecting garbages can be a remedy for such inefficiency. We present an effect system for checking whether every explicit memory reuse is safe. We abstract the heap by using symbolic ...

متن کامل

Making the World Safe for Garbage Collection, 1981

This paper describes the formal specifications of garbage collection in the programming language Cedar Mesa. They were developed as part of the process of identifying a safe subset of Mesa for which garbage collection was possible. The purpose of the specifications was to provide a precise definition of safety, along with criteria for checking the safety of proposed language features. Thus the ...

متن کامل

Safe manual memory management in Cyclone

The goal of the Cyclone project is to investigate how to make a low-level C-like language safe. Our most difficult challenge has been providing programmers control over memory management while retaining safety. This paper 1 describes our experience trying to integrate and use effectively two previously-proposed, safe memory-management mechanisms: statically-scoped regions and tracked pointers. ...

متن کامل

Garbage Collection Scheduling for Utility Accrual Real-Time Systems

Utility Accrual (UA) scheduling is a method of dynamic real-time scheduling that is designed to respond to overload conditions by producing a feasible schedule that heuristically maximizes a pre-defined metric of utility. Whereas utility accrual schedulers have traditionally focused on CPU overload, this dissertation explores memory overload conditions during which the aggregate memory demand e...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1994